package cn.tedu.boot08.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

@RestController
public class UploadController {
    @RequestMapping("/upload")
    public String upload(MultipartFile picFile) throws IOException {
        //得到文件的原始文件名   a.jpg
        String fileName = picFile.getOriginalFilename();
        System.out.println(fileName);
        //得到文件的后缀名  .jpg  从最后一个.的位置截取到最后
        String suffix = fileName.substring(fileName.lastIndexOf("."));
        //得到唯一文件名
        //UUID.randomUUID()得到一个由16进制组成的一个唯一标识符
        fileName = UUID.randomUUID()+suffix;
        System.out.println("filename="+fileName);
        String dirPath = "D:/files";
        //准备日期路径 yyyy年 MM月 dd日   HH小时  mm分钟  ss秒   /2023/03/07/
        SimpleDateFormat format = new SimpleDateFormat("/yyyy/MM/dd/");
        // new Date() 导包 java.util  得到的是当前的系统时间
        String datePath = format.format(new Date());
        File dirFile = new File(dirPath+datePath);
        //判断如果文件夹不存在
        if (!dirFile.exists()){
            //创建文件夹
            dirFile.mkdirs();
        }
        //得到文件的完整路径  G:/files/2023/03/07/xxxxxxxxx.jpg
        String filePath = dirPath+datePath+fileName;
        //把接收到的文件保存到上面的路径  异常抛出
        picFile.transferTo(new File(filePath));
        //把图片的路径响应给客户端,因为删除时会用到
        return datePath+fileName;
    }

    @RequestMapping("/remove")
    public void remove(String url){
        System.out.println("url = " + url);
        //把文件删除
       File file = new File("D:/files"+url);
       file.delete();
    }
}
